package com.ruoyi.service;

import java.util.List;

import com.ruoyi.domain.SysMaterialPlan;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.ResultMap;
import org.apache.ibatis.annotations.Select;

/**
 * 预算材料总计划Service接口
 *
 * @author ruoyi
 * @date 2020-07-08
 */
public interface ISysMaterialPlanService {
    /**
     * 查询预算材料总计划
     *
     * @param matId 预算材料总计划ID
     * @return 预算材料总计划
     */
    public SysMaterialPlan selectSysMaterialPlanById(Integer matId);

    /**
     * 查询预算材料总计划列表
     *
     * @param sysMaterialPlan 预算材料总计划
     * @return 预算材料总计划集合
     */
    public List<SysMaterialPlan> selectSysMaterialPlanList(SysMaterialPlan sysMaterialPlan);

    /**
     * 新增预算材料总计划
     *
     * @param sysMaterialPlan 预算材料总计划
     * @return 结果
     */
    public int insertSysMaterialPlan(SysMaterialPlan sysMaterialPlan);

    /**
     * 修改预算材料总计划
     *
     * @param sysMaterialPlan 预算材料总计划
     * @return 结果
     */
    public int updateSysMaterialPlan(SysMaterialPlan sysMaterialPlan);

    /**
     * 批量删除预算材料总计划
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteSysMaterialPlanByIds(String ids);

    /**
     * 删除预算材料总计划信息
     *
     * @param matId 预算材料总计划ID
     * @return 结果
     */
    public int deleteSysMaterialPlanById(Integer matId);
    /**
     * 查询总项目对应的预算材料总计划
     */
    List<SysMaterialPlan> selectMaterialsRequisitionesLists(Long mId);
    /**
     * 查询材料类型
     */
    SysMaterialPlan selectmatType(Long mId,String matType);
    /**
     * 查询材料分类
     */
    SysMaterialPlan selectmatClassification(Long mId,String matClassification);
    /**
     * 查询材料数据
     */
    SysMaterialPlan selectmatData(Long mId,String matData);
    /**
     * 查询材料详情
     */
    SysMaterialPlan selectmatDetails(Long mId,String matDetails);

    //根据预算材料总计划外键id 查询材料数据名
    List<SysMaterialPlan> selectMatdetails(String matclass);
    /**
     * 根据id更新字段
     */
    int updateSysMaterialPlans(long mMolecule,Integer matId,long mId);

    /**
     *
     * @param sysMaterialPlan
     * @return 导出所有
     */
    public List<SysMaterialPlan> selectall(SysMaterialPlan sysMaterialPlan);
}
